package org.mch.swingm.text.document;

import java.awt.Toolkit;

import javax.swing.text.AttributeSet;
import javax.swing.text.BadLocationException;
import javax.swing.text.PlainDocument;

/**
 * 描述：文本框 整数 Document；<BR/>
 * 
 * @author ZhangLi；2008；<BR/>
 *
 */
public class IntegerDocument extends PlainDocument {
	private static final long serialVersionUID = -1787888230067818548L;

	public void insertString(int offs, String str, AttributeSet a) throws BadLocationException {
		// 若字符串为空，直接返回。
		if (str == null) {
			return;
		}
		if (offs == 0 && str.equals("-")) {
			super.insertString(offs, str, a);// 把-字符添加到文本框
		} else {
			int len = getLength();
			String s = getText(0, len);// 文本框已有的字符
			try {
				s = s.substring(0, offs) + str + s.substring(offs, len);// 在已有的字符后添加字符
				Integer.parseInt(s); // 验证

				// if (i < 0 || i > 10) { // 限制范围
				// throw new Exception();
				// }
			} catch (Exception e) {
				Toolkit.getDefaultToolkit().beep();// 发出提示声音
				return;
			}
			super.insertString(offs, str, a);// 把字符添加到文本框
		}
	}
}
